package cn.csc.module.order.controller.admin.order.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigInteger;
import java.time.LocalDateTime;

import static cn.csc.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel(value = "管理后台 - 订单信息 Excel 导出 Request VO", description = "参数和 OrderPageReqVO 是一致的")
@Data
public class OrderExportReqVO {

    @ApiModelProperty(value = "客户编号")
    private BigInteger userId;

    @ApiModelProperty(value = "商户编码")
    private BigInteger shopId;

    @ApiModelProperty(value = "商户名称")
    private String shopName;

    @ApiModelProperty(value = "订单状态 0未付款,1已付款,2已发货,3已签收,-1退货申请,-2退货中,-3已退货,-4取消交易 -5撤销申请")
    private Integer orderStatus;

    @ApiModelProperty(value = "用户售后状态 0 未发起售后 1 申请售后 -1 售后已取消 2 处理中 200 处理完毕")
    private Integer afterStatus;

    @ApiModelProperty(value = "单个orderItem的配送类型1.快递物流(默认）,2.送货上门,3.自提")
    private Integer deliveryType;

    @ApiModelProperty(value = "总值")
    private BigInteger total;

    @ApiModelProperty(value = "订单商品总数")
    private Integer allCount;

    @ApiModelProperty(value = "付款时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] payTime;

    @ApiModelProperty(value = "发货时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] deliveryTime;

    @ApiModelProperty(value = "完成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] finallyTime;

    @ApiModelProperty(value = "结算时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] settledTime;

    @ApiModelProperty(value = "取消时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] cancelTime;

    @ApiModelProperty(value = "是否已支付，1.已支付0.未支付")
    private Boolean isPayed;

    @ApiModelProperty(value = "订单关闭原因 1-超时未支付 4-买家取消 15-已通过货到付款交易")
    private Integer closeType;

    @ApiModelProperty(value = "用户订单删除状态，0：没有删除， 1：回收站， 2：永久删除")
    private Integer deleteStatus;

    @ApiModelProperty(value = "订单版本号，每处理一次订单，版本号+1")
    private Integer version;

    @ApiModelProperty(value = "用户订单地址id")
    private BigInteger orderAddrId;

    @ApiModelProperty(value = "支付渠道 0余额 1微信 2支付宝 3通联 4拉卡拉 5建行龙支付")
    private String payChannel;

    @ApiModelProperty(value = "订单支付单号")
    private String outTradeNo;

    @ApiModelProperty(value = "第三方支付流水号")
    private String escrowTradeNo;

    @ApiModelProperty(value = "是否是套餐")
    private String isPackage;

    @ApiModelProperty(value = "是否是积分产品")
    private String isIntegral;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @ApiModelProperty(value = "产品名称")
    private String productName;


}
